Unexpected output on initializing array by using both `element-by-element` & `designated` technique
Posted
by
haccks
on Stack Overflow
See other posts from Stack Overflow
or by haccks
Published on 2013-06-29T20:51:37Z
Indexed on
2013/06/30
16:21 UTC
Read the original article
Hit count: 114
C99 provides a feature to initialize arrays by using both element-by-element
& designated
method together as:
int a[] = {2,1,[3] = 5,[5] = 9,6,[8] = 4};
On running the code:
#include <stdio.h>
int main()
{
int a[] = {2,1,[3] = 5,[0] = 9,4,[6] = 25};
for(int i = 0; i < sizeof(a)/sizeof(a[0]); i++)
printf("%d ",a[i]);
return 0;
}
(Note that Element 0
is initialized to 2
and then again initialised by designator [0]
to 9
)
I was expecting that element 0
(which is 2
) will be replaced by 9
(as designator [0] = 9
)
and hence o/p will become
9 1 0 5 4 0 25
Unfortunately I was wrong as o/p came;
9 4 0 5 0 0 25
Any explanation for unexpected o/p?
© Stack Overflow or respective owner